//-----------------------------------------------------------------------
// <copyright file="a_ProductBase.cs" company="AACECOM">
//     Copyright (c) AACECOM. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------
	
using System;
using System.Data;
using System.ComponentModel;
using System.Collections;

namespace ThoiTrang.Entities
{
	[Serializable]
	public class a_ProductBase
	{
		
		#region Variable Declarations
		private int				prodID = 0;
		private int				parentID = 0;
		private string				domPartNum = string.Empty;
		private string				mfgPartNum = string.Empty;
		private int				storeID = 0;
		private int				supplierID = 0;
		private int				catID = 0;
		private string				catName = string.Empty;
		private int				subCatID = 0;
		private string				subCatName = string.Empty;
		private int				subCat2ID = 0;
		private string				subCat2Name = string.Empty;
		private int				catID2 = 0;
		private string				catName2 = string.Empty;
		private int				subCatID2 = 0;
		private string				subCatName2 = string.Empty;
		private int				subCat2ID2 = 0;
		private string				subCat2Name2 = string.Empty;
		private int				mfgID = 0;
		private string				mfgName = string.Empty;
		private int				brandID = 0;
		private string				brand = string.Empty;
		private string				model = string.Empty;
		private string				overview = string.Empty;
		private string				features = string.Empty;
		private string				otherKeywords = string.Empty;
		private string				relatedGrpID = string.Empty;
		private string				colors = string.Empty;
		private string				sizes = string.Empty;
		private int				optionID1 = 0;
		private int				optionID2 = 0;
		private int				optionID3 = 0;
		private int				specSheetID = 0;
		private int				relProductsGrpID = 0;
		private decimal				price_MSRP = 0;
		private decimal				price_Internet = 0;
		private decimal				price_Cost = 0;
		private byte				featured = 0;
		private int				qtySoldToDate = 0;
		private int				qtyOnHand = 0;
		private int				qtyReserved = 0;
		private int				qtyAvailable = 0;
		private double				weight = 0;
		private DateTime				introDate = new DateTime(1900,1,1,0,0,0,0);
		private int				clickCount = 0;
		private int				ratingAvg = 0;
		private int				ratingCount = 0;
		private bool				image_hasS = false;
		private bool				image_hasM = false;
		private bool				image_hasL = false;
		private string				libImageName = string.Empty;
		private bool				isDelete = false;
		private bool				isActive = false;
		private int				domainID = 0;
		private bool				isPromoEligible = false;
		private int				tempProdID = 0;
		private int				tempParentID = 0;
		private string				custom1 = string.Empty;
		private string				custom2 = string.Empty;
		private string				custom3 = string.Empty;
		private string				custom4 = string.Empty;
		private DateTime				customDate = new DateTime(1900,1,1,0,0,0,0);
		private bool				isTaxable = false;
		private bool				isShippable = false;
		private bool				isGiftCert = false;
		private bool				isPackage = false;
		private byte				numImages = 0;
		private byte				numPDFs = 0;
		private byte				numVideos = 0;
		#endregion
		
		#region Constructors
		public a_ProductBase() {}
		
		public a_ProductBase (
			int prodID,
			int parentID,
			string domPartNum,
			string mfgPartNum,
			int storeID,
			int supplierID,
			int catID,
			string catName,
			int subCatID,
			string subCatName,
			int subCat2ID,
			string subCat2Name,
			int catID2,
			string catName2,
			int subCatID2,
			string subCatName2,
			int subCat2ID2,
			string subCat2Name2,
			int mfgID,
			string mfgName,
			int brandID,
			string brand,
			string model,
			string overview,
			string features,
			string otherKeywords,
			string relatedGrpID,
			string colors,
			string sizes,
			int optionID1,
			int optionID2,
			int optionID3,
			int specSheetID,
			int relProductsGrpID,
			decimal price_MSRP,
			decimal price_Internet,
			decimal price_Cost,
			byte featured,
			int qtySoldToDate,
			int qtyOnHand,
			int qtyReserved,
			int qtyAvailable,
			double weight,
			DateTime introDate,
			int clickCount,
			int ratingAvg,
			int ratingCount,
			bool image_hasS,
			bool image_hasM,
			bool image_hasL,
			string libImageName,
			bool isDelete,
			bool isActive,
			int domainID,
			bool isPromoEligible,
			int tempProdID,
			int tempParentID,
			string custom1,
			string custom2,
			string custom3,
			string custom4,
			DateTime customDate,
			bool isTaxable,
			bool isShippable,
			bool isGiftCert,
			bool isPackage,
			byte numImages,
			byte numPDFs,
			byte numVideos)
		
		{
			this.prodID = prodID;
			this.parentID = parentID;
			this.domPartNum = domPartNum;
			this.mfgPartNum = mfgPartNum;
			this.storeID = storeID;
			this.supplierID = supplierID;
			this.catID = catID;
			this.catName = catName;
			this.subCatID = subCatID;
			this.subCatName = subCatName;
			this.subCat2ID = subCat2ID;
			this.subCat2Name = subCat2Name;
			this.catID2 = catID2;
			this.catName2 = catName2;
			this.subCatID2 = subCatID2;
			this.subCatName2 = subCatName2;
			this.subCat2ID2 = subCat2ID2;
			this.subCat2Name2 = subCat2Name2;
			this.mfgID = mfgID;
			this.mfgName = mfgName;
			this.brandID = brandID;
			this.brand = brand;
			this.model = model;
			this.overview = overview;
			this.features = features;
			this.otherKeywords = otherKeywords;
			this.relatedGrpID = relatedGrpID;
			this.colors = colors;
			this.sizes = sizes;
			this.optionID1 = optionID1;
			this.optionID2 = optionID2;
			this.optionID3 = optionID3;
			this.specSheetID = specSheetID;
			this.relProductsGrpID = relProductsGrpID;
			this.price_MSRP = price_MSRP;
			this.price_Internet = price_Internet;
			this.price_Cost = price_Cost;
			this.featured = featured;
			this.qtySoldToDate = qtySoldToDate;
			this.qtyOnHand = qtyOnHand;
			this.qtyReserved = qtyReserved;
			this.qtyAvailable = qtyAvailable;
			this.weight = weight;
			this.introDate = introDate;
			this.clickCount = clickCount;
			this.ratingAvg = ratingAvg;
			this.ratingCount = ratingCount;
			this.image_hasS = image_hasS;
			this.image_hasM = image_hasM;
			this.image_hasL = image_hasL;
			this.libImageName = libImageName;
			this.isDelete = isDelete;
			this.isActive = isActive;
			this.domainID = domainID;
			this.isPromoEligible = isPromoEligible;
			this.tempProdID = tempProdID;
			this.tempParentID = tempParentID;
			this.custom1 = custom1;
			this.custom2 = custom2;
			this.custom3 = custom3;
			this.custom4 = custom4;
			this.customDate = customDate;
			this.isTaxable = isTaxable;
			this.isShippable = isShippable;
			this.isGiftCert = isGiftCert;
			this.isPackage = isPackage;
			this.numImages = numImages;
			this.numPDFs = numPDFs;
			this.numVideos = numVideos;
		}
		#endregion
		
		#region Properties	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int ProdID
		{
			get { return prodID; }
			set { prodID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int ParentID
		{
			get { return parentID; }
			set { parentID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string DomPartNum
		{
			get { return domPartNum; }
			set { domPartNum = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string MfgPartNum
		{
			get { return mfgPartNum; }
			set { mfgPartNum = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int StoreID
		{
			get { return storeID; }
			set { storeID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int SupplierID
		{
			get { return supplierID; }
			set { supplierID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int CatID
		{
			get { return catID; }
			set { catID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string CatName
		{
			get { return catName; }
			set { catName = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int SubCatID
		{
			get { return subCatID; }
			set { subCatID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string SubCatName
		{
			get { return subCatName; }
			set { subCatName = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int SubCat2ID
		{
			get { return subCat2ID; }
			set { subCat2ID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string SubCat2Name
		{
			get { return subCat2Name; }
			set { subCat2Name = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int CatID2
		{
			get { return catID2; }
			set { catID2 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string CatName2
		{
			get { return catName2; }
			set { catName2 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int SubCatID2
		{
			get { return subCatID2; }
			set { subCatID2 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string SubCatName2
		{
			get { return subCatName2; }
			set { subCatName2 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int SubCat2ID2
		{
			get { return subCat2ID2; }
			set { subCat2ID2 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string SubCat2Name2
		{
			get { return subCat2Name2; }
			set { subCat2Name2 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int MfgID
		{
			get { return mfgID; }
			set { mfgID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string MfgName
		{
			get { return mfgName; }
			set { mfgName = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int BrandID
		{
			get { return brandID; }
			set { brandID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string Brand
		{
			get { return brand; }
			set { brand = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string Model
		{
			get { return model; }
			set { model = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string Overview
		{
			get { return overview; }
			set { overview = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string Features
		{
			get { return features; }
			set { features = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string OtherKeywords
		{
			get { return otherKeywords; }
			set { otherKeywords = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string RelatedGrpID
		{
			get { return relatedGrpID; }
			set { relatedGrpID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string Colors
		{
			get { return colors; }
			set { colors = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string Sizes
		{
			get { return sizes; }
			set { sizes = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int OptionID1
		{
			get { return optionID1; }
			set { optionID1 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int OptionID2
		{
			get { return optionID2; }
			set { optionID2 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int OptionID3
		{
			get { return optionID3; }
			set { optionID3 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int SpecSheetID
		{
			get { return specSheetID; }
			set { specSheetID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int RelProductsGrpID
		{
			get { return relProductsGrpID; }
			set { relProductsGrpID = value; }
		}
	
		/// <summary>
		/// 	for info only
		/// </summary>
		/// <value>This type is money</value>
		public decimal Price_MSRP
		{
			get { return price_MSRP; }
			set { price_MSRP = value; }
		}
	
		/// <summary>
		/// 	Default price when no Multi Pricing specified
		/// </summary>
		/// <value>This type is money</value>
		public decimal Price_Internet
		{
			get { return price_Internet; }
			set { price_Internet = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is money</value>
		public decimal Price_Cost
		{
			get { return price_Cost; }
			set { price_Cost = value; }
		}
	
		/// <summary>
		/// 	0 = Specials, 1 = Hot, 2 = New, 3 = Nothing
		/// </summary>
		/// <value>This type is tinyint</value>
		public byte Featured
		{
			get { return featured; }
			set { featured = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int QtySoldToDate
		{
			get { return qtySoldToDate; }
			set { qtySoldToDate = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int QtyOnHand
		{
			get { return qtyOnHand; }
			set { qtyOnHand = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int QtyReserved
		{
			get { return qtyReserved; }
			set { qtyReserved = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int QtyAvailable
		{
			get { return qtyAvailable; }
			set { qtyAvailable = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is float</value>
		public double Weight
		{
			get { return weight; }
			set { weight = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is datetime</value>
		public DateTime IntroDate
		{
			get { return introDate; }
			set { introDate = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int ClickCount
		{
			get { return clickCount; }
			set { clickCount = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int RatingAvg
		{
			get { return ratingAvg; }
			set { ratingAvg = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int RatingCount
		{
			get { return ratingCount; }
			set { ratingCount = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is bit</value>
		public bool Image_hasS
		{
			get { return image_hasS; }
			set { image_hasS = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is bit</value>
		public bool Image_hasM
		{
			get { return image_hasM; }
			set { image_hasM = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is bit</value>
		public bool Image_hasL
		{
			get { return image_hasL; }
			set { image_hasL = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string LibImageName
		{
			get { return libImageName; }
			set { libImageName = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is bit</value>
		public bool IsDelete
		{
			get { return isDelete; }
			set { isDelete = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is bit</value>
		public bool IsActive
		{
			get { return isActive; }
			set { isActive = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int DomainID
		{
			get { return domainID; }
			set { domainID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is bit</value>
		public bool IsPromoEligible
		{
			get { return isPromoEligible; }
			set { isPromoEligible = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int TempProdID
		{
			get { return tempProdID; }
			set { tempProdID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is int</value>
		public int TempParentID
		{
			get { return tempParentID; }
			set { tempParentID = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string Custom1
		{
			get { return custom1; }
			set { custom1 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string Custom2
		{
			get { return custom2; }
			set { custom2 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string Custom3
		{
			get { return custom3; }
			set { custom3 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is varchar</value>
		public string Custom4
		{
			get { return custom4; }
			set { custom4 = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is datetime</value>
		public DateTime CustomDate
		{
			get { return customDate; }
			set { customDate = value; }
		}
	
		/// <summary>
		/// 	0=no, 1=yes
		/// </summary>
		/// <value>This type is bit</value>
		public bool IsTaxable
		{
			get { return isTaxable; }
			set { isTaxable = value; }
		}
	
		/// <summary>
		/// 	0=no, 1=yes
		/// </summary>
		/// <value>This type is bit</value>
		public bool IsShippable
		{
			get { return isShippable; }
			set { isShippable = value; }
		}
	
		/// <summary>
		/// 	0=no, 1=yes
		/// </summary>
		/// <value>This type is bit</value>
		public bool IsGiftCert
		{
			get { return isGiftCert; }
			set { isGiftCert = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is bit</value>
		public bool IsPackage
		{
			get { return isPackage; }
			set { isPackage = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is tinyint</value>
		public byte NumImages
		{
			get { return numImages; }
			set { numImages = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is tinyint</value>
		public byte NumPDFs
		{
			get { return numPDFs; }
			set { numPDFs = value; }
		}
	
		/// <summary>
		/// 	
		/// </summary>
		/// <value>This type is tinyint</value>
		public byte NumVideos
		{
			get { return numVideos; }
			set { numVideos = value; }
		}
	
		
		#endregion
	}//End Class
	
	public enum a_ProductColumns
	{
		ProdID,
		ParentID,
		DomPartNum,
		MfgPartNum,
		StoreID,
		SupplierID,
		CatID,
		CatName,
		SubCatID,
		SubCatName,
		SubCat2ID,
		SubCat2Name,
		CatID2,
		CatName2,
		SubCatID2,
		SubCatName2,
		SubCat2ID2,
		SubCat2Name2,
		MfgID,
		MfgName,
		BrandID,
		Brand,
		Model,
		Overview,
		Features,
		OtherKeywords,
		RelatedGrpID,
		Colors,
		Sizes,
		OptionID1,
		OptionID2,
		OptionID3,
		SpecSheetID,
		RelProductsGrpID,
		Price_MSRP,
		Price_Internet,
		Price_Cost,
		Featured,
		QtySoldToDate,
		QtyOnHand,
		QtyReserved,
		QtyAvailable,
		Weight,
		IntroDate,
		ClickCount,
		RatingAvg,
		RatingCount,
		Image_hasS,
		Image_hasM,
		Image_hasL,
		LibImageName,
		IsDelete,
		IsActive,
		DomainID,
		IsPromoEligible,
		TempProdID,
		TempParentID,
		Custom1,
		Custom2,
		Custom3,
		Custom4,
		CustomDate,
		IsTaxable,
		IsShippable,
		IsGiftCert,
		IsPackage,
		NumImages,
		NumPDFs,
		NumVideos
	}//End enum
}